﻿Ext.define('HIT.view.SetRuleListGrid', {
	extend : 'Ext.grid.Panel',
	alias : 'widget.rulelistgrid',

	cls : 'custom-grid',
	frame : false,
	width : 1200,
	columnLines : false,
	store : 'RuleListStore',
	initComponent : function() {
		var me = this;

		Ext.applyIf(me, {
			columns : [ {
				xtype : 'rownumberer',
				resizable: true,
				width : 30
			}, {
				xtype : 'gridcolumn',
				hidden : true,
				dataIndex : 'rule_id',
				text : Share.T('规则id(隐藏)')
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				hidden : true,
				dataIndex : 'type',
				text : Share.T('规则类型(隐藏)')
			}, {
				xtype : 'gridcolumn',
				dataIndex : 'scope_flag_hidden',
				hidden : true,
				text : Share.T('有效范围(隐藏)')
			}, {
				xtype : 'gridcolumn',
				width : 60,
				align : 'center',
				dataIndex : 'rule_detail_id',
				renderer : renderColor,
				text : Share.T('规则ＩＤ'),
				listeners : {
					dblclick : function(e) {
						var tabpanelId = 'tab-set-rule';
						var tab = Ext.getCmp(tabpanelId);
						if (tab == undefined) {
							return;
						}
						var row = tab.getSelectionModel().getSelection()[0];
						editRule(row);
					}
				}
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				width : 80,
				dataIndex : 'rulename',
				text : Share.T('类型')
			}, {
				xtype : 'gridcolumn',
				align : 'center',
				width : 150,
				dataIndex : 'scope_flag',
				text : Share.T('有效范围')
			}, {
				xtype : 'gridcolumn',
				width : 150,
				align : 'center',
				dataIndex : 'cust_code',
				text : Share.T('客户代码')
			}, {
				xtype : 'gridcolumn',
				width : 150,
				align : 'left',
				style:'text-align:center;',
				dataIndex : 'cust_name_chn',
				text : Share.T('客户名称')
			}, {
				xtype : 'gridcolumn',
				width : 200,
				align : 'left',
				style:'text-align:center;',
				dataIndex : 'remark',
				text : Share.T('备注')
			}, {
				xtype : 'gridcolumn',
				width : 100,
				align : 'center',
				dataIndex : 'creator',
				text : Share.T('创建者')
			}, {
				xtype : 'gridcolumn',
				width : 140,
				align : 'center',
				dataIndex : 'create_date',
				text : Share.T('创建日')
			} ],
			viewConfig : {
				enableTextSelection : true
			},
			selModel : Ext.create('Ext.selection.CheckboxModel', {
				checkOnly : false
			}),
//			plugins : [ {
//				ptype : "rowselectionpaging"
//			} ],
			dockedItems : [ {
				xtype : 'pagingtoolbar',
				id: 'rulelisttoolbar',
				dock : 'bottom',
				width : 360,
				inputItemWidth : 45,
				displayInfo : true,
				store : 'RuleListStore',
				plugins : [ {
					ptype : "pagesize",
					uxPageSize : page_size
				} ]
			}, {
				xtype : 'toolbar',
				dock : 'top',
				items : [ {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'combobox',
					// triggerAction : 'query',
					editable : false,
					fieldLabel : Share.T('规则类型'),
					id : 'type',
					name : 'type',
					valueField : 'value',
					displayField : 'type',
					value : "00",
					store : new Ext.data.JsonStore({
						proxy : {
							type : 'ajax',
							url : ctx + '/getCheckedRule',
							params : {},
							reader : {
								type : 'json',
								totalProperty : '',
								root : ''
							}
						},
						fields : [ 'type', 'value' ],
						autoLoad : true
					}),
					listeners : {
						select : function(combo, records, e) {
							var type = combo.value;
							var tabpanelId = 'tab-set-rule';
							var tab = Ext.getCmp(tabpanelId);
							var store = tab.getStore();
							store.currentPage = 1;
							store.removeAll();
							store.on('beforeload', function(store) {
								Ext.apply(store.proxy.extraParams, {
									type : type
								});
							});
							store.load();
						}
					}
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'combobox',
					triggerAction : 'query',
					id : 'cust_code',
					labelWidth : 60,
					width : 180,
					editable : true,
					minChars : 1,
					fieldLabel : Share.T('客户代码'),
					selectOnFocus : true,
					valueField : 'name',
					displayField : 'code',
					hideTrigger : true, // 隐藏下拉箭头
					typeAhead : false,
					queryDelay : 20,
					store : new Ext.data.JsonStore({
						proxy : {
							type : 'ajax',
							url : ctx + '/getCustInfo',
							params : {},
							reader : {
								type : 'json',
								totalProperty : '',
								root : ''
							}
						},
						fields : [ 'code', 'name' ],
						autoLoad : true
					}),
					listeners : {
						beforequery : function(e) {
							var combo = e.combo;
							if (!e.forceAll) {
								var value = e.query;
								combo.store.filterBy(function(record, id) {
									var text = record.get(combo.displayField);
									return (text.indexOf(value) != -1);
								});
								combo.expand();
								return false;
							}
						},
			      		select:function(e){
			      			var value=Ext.getCmp('cust_code').getValue();
							Ext.getCmp("cust_name_chn").setValue(value);
			      		}
					}
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {
					xtype : 'combobox',
					triggerAction : 'query',
					id : 'cust_name_chn',
					hideTrigger : true, // 隐藏下拉箭头
					selectOnFocus : true,
					fieldLabel : Share.T('客户名称'),
					labelWidth : 60,
					width : 200,
					valueField : 'code',
					displayField : 'name',
					typeAhead : false,
					queryDelay : 20,
					store : new Ext.data.JsonStore({
						proxy : {
							type : 'ajax',
							url : ctx + '/getCustInfo',
							params : {},
							reader : {
								type : 'json',
								totalProperty : '',
								root : ''
							}
						},
						fields : [ 'code', 'name' ],
						autoLoad : true
					}),
					listeners : {
						beforequery : function(e) {
							var combo = e.combo;
							if (!e.forceAll) {
								var value = e.query;
								combo.store.filterBy(function(record, id) {
									var text = record.get(combo.displayField);
									return (text.indexOf(value) != -1);
								});
								combo.expand();
								return false;
							}
						},
			      		select:function(e){
			      			var value=Ext.getCmp('cust_name_chn').getValue();
							Ext.getCmp("cust_code").setValue(value);
			      		}
		      		}
				}, {
					xtype : 'tbspacer',
					width : 20
				}, {

					xtype : 'combobox',
					triggerAction : 'query',
					id : 'creator',
					hideTrigger : true, // 隐藏下拉箭头
					selectOnFocus : true,
					fieldLabel : Share.T('创建者'),
					labelWidth : 60,
					width : 200,
					region:'center',
					valueField : 'name',
					displayField : 'name',
					typeAhead : false,
					queryDelay : 20,
					store : new Ext.data.JsonStore({
						proxy : {
							type : 'ajax',
							url : ctx + '/getCreator',
							params : {},
							reader : {
								type : 'json',
								totalProperty : '',
								root : ''
							}
						},
						fields : [ 'name' ],
						autoLoad : true
					}),
					listeners : {
						beforequery : function(e) {
							var combo = e.combo;
							if (!e.forceAll) {
								var value = e.query;
								combo.store.filterBy(function(record, id) {
									var text = record.get(combo.displayField);
									return (text.indexOf(value) != -1);
								});
								combo.expand();
								return false;
							}
						}
					}
				}, {
					xtype : 'tbspacer',
					width : 20
				} ]
			} ]
		});
		me.callParent(arguments);
	}
});
function renderColor(value, cellmeta, record, rowIndex, columnIndex, store) {
	return "<span style='color:blue;cursor:pointer;'>" + value + "</span>";
}

function renderReColor(value, cellmeta, record, rowIndex, columnIndex, store) {
	return value;
}